package com.wilmer.papers.service.impl;

import java.util.List;

import com.wilmer.common.utils.DateUtils;
import com.wilmer.common.utils.SecurityUtils;
import com.wilmer.paperResults.domain.YwPaperResults;
import com.wilmer.paperResults.service.IYwPaperResultsService;
import com.wilmer.papers.domain.InitiateTestVO;
import com.wilmer.papers.domain.YwPaperQuestions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.wilmer.papers.mapper.YwPapersMapper;
import com.wilmer.papers.domain.YwPapers;
import com.wilmer.papers.service.IYwPapersService;

/**
 * 试卷作业Service业务层处理
 *
 * @author zl
 * @date 2024-04-18
 */
@Service
public class YwPapersServiceImpl implements IYwPapersService {
    @Autowired
    private YwPapersMapper ywPapersMapper;
    @Autowired
    private IYwPaperResultsService ywPaperResultsService;

    @Override
    public YwPapers selectYwPapersByPaperId(Long paperId) {
        return this.ywPapersMapper.selectYwPapersByPaperId(paperId);
    }

    @Override
    public YwPapers selectYwPapersAll(Long paperId) {
        return this.ywPapersMapper.selectYwPapersAll(paperId);
    }

    @Override
    public Integer initiateTest(InitiateTestVO initiateTestVO) {
        try {
            for(int i = 0; i < initiateTestVO.getUserIds().size(); ++i) {
                YwPaperResults ywPaperResults = new YwPaperResults();
                ywPaperResults.setStudentId((Long)initiateTestVO.getUserIds().get(i));
                ywPaperResults.setPaperId(initiateTestVO.getPaperId());
                this.ywPaperResultsService.insertYwPaperResults(ywPaperResults);
            }
        } catch (Exception var4) {
            return 0;
        }

        return 1;
    }

    @Override
    public List<YwPapers> selectYwPapersList(YwPapers ywPapers) {
        ywPapers.setTeacherId(SecurityUtils.getUserId());
        return this.ywPapersMapper.selectYwPapersList(ywPapers);
    }

    @Override
    public int insertYwPapers(YwPapers ywPapers) {
        ywPapers.setCreateTime(DateUtils.getNowDate());
        ywPapers.setTeacherId(SecurityUtils.getUserId());
        int i = this.ywPapersMapper.insertYwPapers(ywPapers);
        if (!ywPapers.getPaperQuestionsList().isEmpty()) {
            for(int j = 0; j < ywPapers.getPaperQuestionsList().size(); ++j) {
                ((YwPaperQuestions)ywPapers.getPaperQuestionsList().get(j)).setPaperId(ywPapers.getPaperId());
                this.ywPapersMapper.insertYwPapersQuestions((YwPaperQuestions)ywPapers.getPaperQuestionsList().get(j));
            }
        }
        return i;
    }

    @Override
    public int updateYwPapers(YwPapers ywPapers) {
        ywPapers.setUpdateTime(DateUtils.getNowDate());
        return this.ywPapersMapper.updateYwPapers(ywPapers);
    }

    @Override
    public int deleteYwPapersByPaperIds(Long[] paperIds) {
        return this.ywPapersMapper.deleteYwPapersByPaperIds(paperIds);
    }

    @Override
    public int deleteYwPapersByPaperId(Long paperId) {
        return this.ywPapersMapper.deleteYwPapersByPaperId(paperId);
    }
//    /**
//     * 查询试卷作业
//     *
//     * @param paperId 试卷作业主键
//     * @return 试卷作业
//     */
//    @Override
//    public YwPapers selectYwPapersByPaperId(Long paperId) {
//        return ywPapersMapper.selectYwPapersByPaperId(paperId);
//    }
//
//    /**
//     * 查询试卷全部信息
//     */
//    @Override
//    public YwPapers selectYwPapersAll(Long paperId) {
//        return ywPapersMapper.selectYwPapersAll(paperId);
//    }
//    /**
//     * 选择人发起考试（admin可以选全部人  幼儿园能选院内教师）发起
//     */
//    @Override
//    public Integer initiateTest(InitiateTestVO initiateTestVO){
////        if (!initiateTestVO.getUserIds().isEmpty()){
////
////        }
//        try {
//            for (int i = 0; i < initiateTestVO.getUserIds().size(); i++) {
//                YwPaperResults ywPaperResults = new YwPaperResults();
//                ywPaperResults.setStudentId(initiateTestVO.getUserIds().get(i));
//                ywPaperResults.setPaperId(initiateTestVO.getPaperId());
//                ywPaperResultsService.insertYwPaperResults(ywPaperResults);
//            }
//        }catch (Exception e){
//            return 0;
//        }
//        return 1;
//    }
//    /**
//     * 查询试卷作业列表
//     *
//     * @param ywPapers 试卷作业
//     * @return 试卷作业
//     */
//    @Override
//    public List<YwPapers> selectYwPapersList(YwPapers ywPapers) {
//        ywPapers.setTeacherId(SecurityUtils.getUserId());
//        return ywPapersMapper.selectYwPapersList(ywPapers);
//    }
//    /**
//     * 查询个人考试列表
//     *
//     */
//    @Override
//    public List<YwPapers> selectPapersByUserId(YwPapers ywPapers) {
//        ywPapers.setTeacherId(SecurityUtils.getUserId());
//        return ywPapersMapper.selectYwPapersList(ywPapers);
//    }
//    /**
//     * 新增试卷作业
//     *
//     * @param ywPapers 试卷作业
//     * @return 结果
//     */
//    @Override
//    public int insertYwPapers(YwPapers ywPapers) {
//
//        ywPapers.setCreateTime(DateUtils.getNowDate());
//        ywPapers.setTeacherId(SecurityUtils.getUserId());
//        int i = ywPapersMapper.insertYwPapers(ywPapers);
//        if (!ywPapers.getPaperQuestionsList().isEmpty()){
//            for (int j = 0; j < ywPapers.getPaperQuestionsList().size(); j++) {
//                ywPapers.getPaperQuestionsList().get(j).setPaperId(ywPapers.getPaperId());
//                ywPapersMapper.insertYwPapersQuestions(ywPapers.getPaperQuestionsList().get(j));
//            }
//        }
//        return i;
//    }
//
//    /**
//     * 修改试卷作业
//     *
//     * @param ywPapers 试卷作业
//     * @return 结果
//     */
//    @Override
//    public int updateYwPapers(YwPapers ywPapers) {
//        ywPapers.setUpdateTime(DateUtils.getNowDate());
//        return ywPapersMapper.updateYwPapers(ywPapers);
//    }
//
//    /**
//     * 批量删除试卷作业
//     *
//     * @param paperIds 需要删除的试卷作业主键
//     * @return 结果
//     */
//    @Override
//    public int deleteYwPapersByPaperIds(Long[] paperIds) {
//        return ywPapersMapper.deleteYwPapersByPaperIds(paperIds);
//    }
//
//    /**
//     * 删除试卷作业信息
//     *
//     * @param paperId 试卷作业主键
//     * @return 结果
//     */
//    @Override
//    public int deleteYwPapersByPaperId(Long paperId) {
//        return ywPapersMapper.deleteYwPapersByPaperId(paperId);
//    }
}
